import PouchDB from 'pouchdb';
const _dbName = 'pc-base-db-vue';
let _db;

// 初始化前台数据库，没有创建有则打开前台数据库
export function initDB() {
  _db = new PouchDB(_dbName);
}

// 删除前台数据库
export function deleteDB() {
  return new Promise((resolve, reject) => {
    _db.destroy().then(function(response) {
      resolve(response);
    }).catch(function(err) {
      reject(err);
    });
  });
}

// 添加前台数据库
// 调用例子
/*
this._PouchDBService.initDB();
this._PouchDBService.addDoc('testID', {
  title: '测试',
}).then(function (res)
  console.log(res);
}).catch(function (err) {
  console.log(err);
});
*/
export function addDoc(id, jsonDoc) {
  return new Promise((resolve, reject) => {
    const jsonObj = {
      _id: id,
      data: jsonDoc
    };
    _db.put(jsonObj).then(function(response) {
      // handle response
      resolve(response);
    }).catch(function(err) {
      reject(err);
    });
  });
}

// 根据ID获取缓存数据
export function getDoc(name) {
  initDB();
  return new Promise((resolve, reject) => {
    _db.get(name).then(function(doc) {
      resolve(doc);
    }).catch(function(err) {
      reject(err);
    });
  });
}

// 根据ID删除缓存数据
export function deleteDoc(name) {
  return new Promise((resolve, reject) => {
    _db.get(name).then(function(doc) {
      return _db.remove(doc);
    }).then(function(result) {
      resolve(result);
    }).catch(function(err) {
      reject(err);
    });
  });
}
